//变量声明区
#include <graphics.h>
#include <vector>
#include<string.h>
#include<assert.h>
using namespace std;


extern int flag;//switch里面的 控制调用哪个函数   GameViewF文件定义

extern vector<IMAGE> Hero; //人物的移动帧    Init

extern vector<IMAGE> Monster; //怪物移动帧     Init
extern int ImgIndex;  //怪物种类

//表示 局内游戏人物 的一些属性
typedef struct Character {

	int blood;  //血量

	int weapon;  //武器编号

	int map_x, map_y; //表示当前角色的坐标

	int speed;  //移动速度


	//攻击方法
	void(*attack)();   //函数指针

};

extern int weapon;// 武器编号


extern bool GAME_PAUSE_SET;  //表示记录  游戏界面 -> 暂停 ->设置 这条路径

extern bool MENU_SET;// 记录 菜单 ->  设置 这条路径

extern IMAGE BgImg; //加载背景图片

extern int blood;  //初始化血量

extern IMAGE EndImage; //结算画面

typedef struct _rank
{
	char name[20];
	int score;
};
extern int PersonIndex;  //排行榜中玩家的索引

extern int ranking[10000];//存放玩家的每次游戏分数

extern int num_ranking; //分数数量

extern int MusicSizeNumber;  // 音乐数值大小

extern int score;//游戏获得的分数

extern IMAGE TitleImg; //加载菜单图片

//排行榜图标
extern IMAGE RankImg;

//设置图标
extern IMAGE SetImg;

//音量加图标
extern IMAGE SoundOnImg;

//音量减图标
extern IMAGE SoundOffImg;

//人物向上移动图片
extern IMAGE UpImg;

//人物向下移动图片
extern IMAGE DownImg;

//人物向左移动图片
extern IMAGE LeftImg;

//人物向右移动图片
extern IMAGE RightImg;

//人物左侧攻击
extern IMAGE LeftAttackImg;

//人物右侧攻击
extern IMAGE RightAttackImg;

//人物上侧攻击
extern IMAGE UpAttackImg;

//人物下侧攻击
extern IMAGE DownAttackImg;

//怪物向上移动图片
extern IMAGE MonsterUpImg;

//怪物向下移动图片
extern IMAGE MonsterDownImg;

//怪物向左移动图片
extern IMAGE MonsterLeftImg;

//怪物向右移动图片
extern IMAGE MonsterRightImg;

//按钮封装
typedef struct button {
	int x;
	int y;
	int width;
	int height;

	COLORREF curColor;
	COLORREF inColor;
	COLORREF outColor;

	char* text;

}BUTTON;

//人物坐标
extern int imgX;  
extern int imgY;

//按钮的位置
extern int BUTTON_X;
extern int BUTTON_Y_1;
extern int BUTTON_Y_2;
extern int BUTTON_Y_3;

//按钮的大小
extern int BUTTON_WIDTH;
extern int BUTTON_HEIGHT;
extern int BUTTON_SPACING;


extern COLORREF BUTTON_COLOR;
extern COLORREF TEXT_COLOR;

//加载人物图片的类型
extern int HeroShowIndex;

//在键盘按下的时候时间比较长 GetAsyncKeyState会在这一瞬间连续获取键盘的值，要
// 加以控制只能获取一次 
extern int ControlValOne;
extern int ControlAttack1;
extern int ControlAttack2;
extern int ControlAttack3;
extern int ControlAttack4;


extern int FlushMillisecond;  //刷新时间

//调大按钮的坐标
extern int rx1;
extern int ry1;

extern int rx_w1;
extern int ry_h1;

//调小按钮的坐标
extern int rx2;
extern int ry2;

extern int rx_w2;
extern int ry_h2;


//菜单界面坐标
extern int x_;
extern int y_;
extern int w;
extern int h;



extern int hSpace;
extern int vSpace;

extern ExMessage ms;//供button使用的消息体


